package com.mall.shop.config;

import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;

@Configuration
public class ElasticSearchConfig extends AbstractElasticsearchConfiguration {

    @Bean
    @Override
    public RestHighLevelClient elasticsearchClient() {
        // 使用ClientConfiguration中的构造器构造连接配置，其中需填写es连接地址、设置默认HttpHeaders或启用SSL
        ClientConfiguration clientConfiguration = ClientConfiguration.builder()
                .connectedTo("http://192.168.56.10:9200")
                .build();

        // 通过构造的配置创建一个RestHighLevelClient操作es的客户端
        return RestClients.create(clientConfiguration).rest();
    }
}

// Elasticsearch 使用的相关配置参观官网  https://docs.spring.io/spring-data/elasticsearch/docs/4.1.2/reference/html/#elasticsearch.clients.rest
// 可以将spring-boot-starter-data-elasticsearch启动器的使用类比于mybatis-plus，同样可以继承启动器提供的已经写好的类或者接口，例如：ElasticsearchRepository接口
